home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / DB_CLIPP / 1159.ZIP / OSSMODMF.PRG < prev    next >
Text File  |  1987-01-27  |  28KB  |  1,176 lines

  1. DUP100=0
  2. IF MULTTV=0.AND.MULTSN=0
  3. CLOSE DATABASES
  4. USE &DBNAME INDEX &INDEX1,&INDEX2
  5. ENDIF
  6. SET SAFETY OFF
  7. DAT=DATE()
  8. N7=0
  9. PUBLIC CALOVER
  10. CALOVER=0
  11. SET DELETED ON
  12. DO CASE
  13.  CASE MULTTV=1
  14.   CLOSE DATABASES
  15.   SELECT 2
  16.   USE REPWORK
  17.   SELECT 1
  18.   USE &DBNAME INDEX &INDEX1,&INDEX2
  19.   SEEK TVANO
  20. IF EOF()
  21.  CLEAR
  22.  @ 1,20 SAY 'Data base in use:  '
  23.  ?? OSS
  24.  @ 5,0 SAY 'No record was found in which "'
  25.  ?? TVANO
  26.  ??'" exactly '
  27.  ?'matched any item in the '
  28.  ?? TVANUMBER
  29.  ??' field.'
  30.  ?
  31.  ?
  32.  ?
  33.  WAIT
  34.  RETURN
  35. ENDIF
  36.   DO WHILE TVANO=TVA_NO
  37.    SELECT 2
  38.    APPEND BLANK
  39.    REPLACE SUBCATID WITH A->SUBCATID
  40.    REPLACE INST_TYPE WITH A->INST_TYPE
  41.    REPLACE TVA_NO WITH A->TVA_NO
  42.    REPLACE SERIAL_NO WITH A->SERIAL_NO
  43.    REPLACE BY_DATE WITH A->BY_DATE
  44.    REPLACE CALIB_DATE WITH A->CALIB_DATE
  45.    REPLACE CAL_DUE_DT WITH A->CAL_DUE_DT
  46.    REPLACE LOCATION WITH A->LOCATION
  47.    REPLACE REMARK WITH A->REMARK
  48.    REPLACE CALIB_INT WITH A->CALIB_INT
  49.    REPLACE LAST_UPDAT WITH A->LAST_UPDAT
  50.    SELECT 1
  51.    DELETE
  52.    SKIP
  53.   ENDDO
  54.   SELECT 2
  55.  CASE MULTSN=1
  56.   CLOSE DATABASES
  57.   SELECT 2
  58.   USE REPWORK
  59.   SELECT 1
  60.   USE &DBNAME INDEX &INDEX2,&INDEX1
  61.   SEEK TVANO
  62. IF EOF()
  63.  CLEAR
  64.  @ 1,20 SAY 'Data base in use:  '
  65.  ?? OSS
  66.  @ 5,0 SAY 'No record was found in which "'
  67.  ?? TVANO
  68.  ??'" exactly '
  69.  ?'matched any item in the '
  70.  ?? SERIALNUM
  71.  ??' field.'
  72.  ?
  73.  ?
  74.  ?
  75.  WAIT
  76.  RETURN
  77. ENDIF
  78.   DO WHILE TVANO=SERIAL_NO
  79.    SELECT 2
  80.    APPEND BLANK
  81.    REPLACE SUBCATID WITH A->SUBCATID
  82.    REPLACE INST_TYPE WITH A->INST_TYPE
  83.    REPLACE TVA_NO WITH A->TVA_NO
  84.    REPLACE SERIAL_NO WITH A->SERIAL_NO
  85.    REPLACE BY_DATE WITH A->BY_DATE
  86.    REPLACE CALIB_DATE WITH A->CALIB_DATE
  87.    REPLACE CAL_DUE_DT WITH A->CAL_DUE_DT
  88.    REPLACE LOCATION WITH A->LOCATION
  89.    REPLACE REMARK WITH A->REMARK
  90.    REPLACE CALIB_INT WITH A->CALIB_INT
  91.    REPLACE LAST_UPDAT WITH A->LAST_UPDAT
  92.    SELECT 1
  93.    DELETE
  94.    SKIP
  95.   ENDDO
  96.   SELECT 2
  97. CASE MULTTV=0.AND.MULTSN=0
  98. DO CASE
  99.  CASE OTHERCAL=1
  100.   SET FILTER TO CALIB_INT=0.OR.CAT3ABB $ SUBCATID
  101.     GO TOP
  102.     COPY TO REPWORK
  103.   DELETE FOR CALIB_INT=0.OR.CAT3ABB $ SUBCATID
  104.  CASE STORAGE=1
  105.   SET FILTER TO SUB1ABB $ SUBCATID
  106.     GO TOP
  107.     COPY TO REPWORK
  108.   DELETE FOR SUB1ABB $ SUBCATID
  109.  CASE CAL=1
  110.   SET FILTER TO SUB2ABB $ SUBCATID.OR.SUB3ABB $ SUBCATID
  111.     GO TOP
  112.     COPY TO REPWORK
  113.   DELETE FOR SUB2ABB $ SUBCATID.OR.SUB3ABB $ SUBCATID
  114.  CASE ALL=1
  115.     COPY TO REPWORK
  116.     DELETE ALL
  117.  CASE CALDU=1
  118.   SET FILTER TO COMPDATE1<=CAL_DUE_DT .AND. COMPDATE2>=CAL_DUE_DT
  119.   GO TOP
  120.   COPY TO REPWORK
  121.   DELETE FOR COMPDATE1<=CAL_DUE_DT .AND. COMPDATE2>=CAL_DUE_DT
  122.  CASE CALDT=1
  123.   SET FILTER TO COMPDATE1<=CALIB_DATE .AND. COMPDATE2>=CALIB_DATE
  124.   GO TOP
  125.   COPY TO REPWORK
  126.   DELETE FOR COMPDATE1<=CALIB_DATE .AND. COMPDATE2>=CALIB_DATE
  127.  CASE CALINT=1
  128.   SET FILTER TO INTERVAL1<=CALIB_INT .AND. INTERVAL2>=CALIB_INT
  129.   GO TOP
  130.   COPY TO REPWORK
  131.   DELETE FOR INTERVAL1<=CALIB_INT .AND. INTERVAL2>=CALIB_INT
  132.  CASE REMK=1
  133.   SET FILTER TO REMARK1 $ REMARK
  134.   GO TOP
  135.   COPY TO REPWORK
  136.   DELETE FOR REMARK1 $ REMARK
  137.  CASE UPDT=1
  138.   SET FILTER TO COMPDATE1<=LAST_UPDAT .AND. COMPDATE2>=LAST_UPDAT
  139.   GO TOP
  140.   COPY TO REPWORK
  141.   DELETE FOR COMPDATE1<=LAST_UPDAT .AND. COMPDATE2>=LAST_UPDAT
  142.  CASE INCAL=1
  143.   SET FILTER TO SUB2ABB $ SUBCATID
  144.     GO TOP
  145.     COPY TO REPWORK
  146.   DELETE FOR SUB2ABB $ SUBCATID
  147.  CASE INREP=1
  148.   SET FILTER TO SUB3ABB $ SUBCATID
  149.     GO TOP
  150.     COPY TO REPWORK
  151.   DELETE FOR SUB3ABB $ SUBCATID
  152.  CASE SERPHRASE=1
  153.   SET FILTER TO SERPH $ SERIAL_NO
  154.   GO TOP
  155.   COPY TO REPWORK
  156.   DELETE FOR SERPH $ SERIAL_NO
  157.  CASE TVAPHRASE=1
  158.   SET FILTER TO TVAPH $ TVA_NO
  159.   GO TOP
  160.   COPY TO REPWORK
  161.   DELETE FOR TVAPH $ TVA_NO
  162.  CASE NOTUSED=1
  163.  DO CASE
  164.   CASE NUMCOND=1
  165.   DO CASE
  166.    CASE COND1=DUEWITHIN.OR. COND1='ONLY'
  167.     SET FILTER TO CALIB_INT=99
  168.     GO TOP
  169.     COPY TO REPWORK
  170.     DELETE FOR CALIB_INT=99
  171.    CASE COND2=LOCATI
  172.     SET FILTER TO LOC $ UPPER(LOCATION).AND.CALIB_INT=99
  173.     GO TOP
  174.     COPY TO REPWORK
  175.     DELETE FOR LOC $ UPPER(LOCATION).AND.CALIB_INT=99
  176.    CASE COND3=INSTTYPE
  177.     SET FILTER TO INST $ UPPER(INST_TYPE).AND.CALIB_INT=99
  178.     GO TOP
  179.     COPY TO REPWORK
  180.     DELETE FOR INST $ UPPER(INST_TYPE).AND.CALIB_INT=99
  181.   ENDCASE
  182.  CASE NUMCOND=2
  183.   DO CASE
  184.    CASE COND1=DUEWITHIN.AND.COND2=LOCATI
  185.     SET FILTER TO LOC $ UPPER(LOCATION).AND.CALIB_INT=99 
  186.     GO TOP
  187.     COPY TO REPWORK
  188.     DELETE FOR LOC $ UPPER(LOCATION).AND.CALIB_INT=99 
  189.    CASE COND1=DUEWITHIN.AND.COND3=INSTTYPE
  190.     SET FILTER TO INST $ UPPER(INST_TYPE).AND.CALIB_INT=99 
  191.     GO TOP
  192.     COPY TO REPWORK
  193.     DELETE FOR INST $ UPPER(INST_TYPE).AND.CALIB_INT=99 
  194.    CASE COND2=LOCATI.AND.COND3=INSTTYPE
  195.     SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ ;
  196. UPPER(INST_TYPE).AND.CALIB_INT=99 
  197.     GO TOP
  198.     COPY TO REPWORK
  199.     DELETE FOR LOC $ UPPER(LOCATION).AND.INST $ ;
  200. UPPER(INST_TYPE).AND.CALIB_INT=99 
  201.   ENDCASE
  202.  CASE NUMCOND=3
  203.   SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ ;
  204. UPPER(INST_TYPE).AND.CALIB_INT=99
  205.     GO TOP
  206.     COPY TO REPWORK
  207.   DELETE FOR LOC $ UPPER(LOCATION).AND.INST $ ;
  208. UPPER(INST_TYPE).AND.CALIB_INT=99
  209. ENDCASE
  210.  CASE INACTIVE=0
  211. DO CASE
  212.  CASE NUMCOND=1
  213.   DO CASE
  214.    CASE COND1='ONLY'
  215.     SET FILTER TO BY_DATE>10
  216.     GO TOP
  217.     COPY TO REPWORK
  218.     DELETE FOR BY_DATE>10
  219.    CASE COND1=DUEWITHIN
  220.     SET FILTER TO BYDATE>BY_DATE.AND.BY_DATE>10
  221.     GO TOP
  222.     COPY TO REPWORK
  223.     DELETE FOR BYDATE>BY_DATE.AND.BY_DATE>10
  224.    CASE COND2=LOCATI
  225.     SET FILTER TO LOC $ UPPER(LOCATION).AND.BY_DATE>10
  226.     GO TOP
  227.     COPY TO REPWORK
  228.     DELETE FOR LOC $ UPPER(LOCATION).AND.BY_DATE>10
  229.    CASE COND3=INSTTYPE
  230.     SET FILTER TO INST $ UPPER(INST_TYPE).AND.BY_DATE>10
  231.     GO TOP
  232.     COPY TO REPWORK
  233.     DELETE FOR INST $ UPPER(INST_TYPE).AND.BY_DATE>10
  234.   ENDCASE
  235.  CASE NUMCOND=2
  236.   DO CASE
  237.    CASE COND1=DUEWITHIN.AND.COND2=LOCATI
  238.     SET FILTER TO LOC $ UPPER(LOCATION).AND.BYDATE>BY_DATE.AND.;
  239. BY_DATE>10
  240.     GO TOP
  241.     COPY TO REPWORK
  242.     DELETE FOR LOC $ UPPER(LOCATION).AND.BYDATE>BY_DATE.AND.;
  243. BY_DATE>10
  244.    CASE COND1=DUEWITHIN.AND.COND3=INSTTYPE
  245.     SET FILTER TO INST $ UPPER(INST_TYPE).AND.BYDATE>BY_DATE.AND.;
  246. BY_DATE>10
  247.     GO TOP
  248.     COPY TO REPWORK
  249.     DELETE FOR INST $ UPPER(INST_TYPE).AND.BYDATE>BY_DATE.AND.;
  250. BY_DATE>10
  251.    CASE COND2=LOCATI.AND.COND3=INSTTYPE
  252.     SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ ;
  253. UPPER(INST_TYPE).AND.BY_DATE>10 
  254.     GO TOP
  255.     COPY TO REPWORK
  256.     DELETE FOR LOC $ UPPER(LOCATION).AND.INST $ ;
  257. UPPER(INST_TYPE).AND.BY_DATE>10 
  258.   ENDCASE
  259.  CASE NUMCOND=3
  260.   SET FILTER TO LOC $ UPPER(LOCATION).AND.INST $ ;
  261. UPPER(INST_TYPE).AND.BYDATE>BY_DATE.AND.BY_DATE>10
  262.     GO TOP
  263.     COPY TO REPWORK
  264.   DELETE FOR LOC $ UPPER(LOCATION).AND.INST $ ;
  265. UPPER(INST_TYPE).AND.BYDATE>BY_DATE.AND.BY_DATE>10
  266. ENDCASE
  267.  CASE NUMCOND=1
  268.   DO CASE
  269.    CASE COND1=DUEWITHIN
  270.     SET FILTER TO BYDATE>BY_DATE.AND.CALIB_INT#0
  271.     GO TOP
  272.     COPY TO REPWORK
  273.     DELETE FOR BYDATE>BY_DATE.AND.CALIB_INT#0
  274.    CASE COND2=LOCATI
  275.     SET FILTER TO LOC $ UPPER(LOCATION)
  276.     GO TOP
  277.     COPY TO REPWORK
  278.     DELETE FOR LOC $ UPPER(LOCATION)
  279.    CASE COND3=INSTTYPE
  280.     SET FILTER TO INST $ UPPER(INST_TYPE)
  281.     GO TOP
  282.     COPY TO REPWORK
  283.     DELETE FOR INST $ UPPER(INST_TYPE)
  284.   ENDCASE
  285.  CASE NUMCOND=2
  286.   DO CASE
  287.    CASE COND1=DUEWITHIN.AND.COND2=LOCATI
  288.     SET FILTER TO LOC $ UPPER(LOCATION) .AND. BYDATE>BY_DATE.AND.;
  289. CALIB_INT#0
  290.     GO TOP
  291.     COPY TO REPWORK
  292.     DELETE FOR LOC $ UPPER(LOCATION) .AND. BYDATE>BY_DATE.AND.CALIB_INT#0
  293.    CASE COND1=DUEWITHIN.AND.COND3=INSTTYPE
  294.     SET FILTER TO INST $ UPPER(INST_TYPE) .AND. BYDATE>BY_DATE.AND.;
  295. CALIB_INT#0
  296.     GO TOP
  297.     COPY TO REPWORK
  298.     DELETE FOR INST $ UPPER(INST_TYPE) .AND. BYDATE>BY_DATE.AND.CALIB_INT#0
  299.    CASE COND2=LOCATI.AND.COND3=INSTTYPE
  300.     SET FILTER TO LOC $ UPPER(LOCATION) .AND. INST $ UPPER(INST_TYPE)
  301.     GO TOP
  302.     COPY TO REPWORK
  303.     DELETE FOR LOC $ UPPER(LOCATION) .AND. INST $ UPPER(INST_TYPE)
  304.   ENDCASE
  305.  CASE NUMCOND=3
  306.   SET FILTER TO LOC $ UPPER(LOCATION) .AND. INST $ ;
  307. UPPER(INST_TYPE) .AND.BYDATE>BY_DATE.AND.CALIB_INT#0
  308.     GO TOP
  309.     COPY TO REPWORK
  310.   DELETE FOR LOC $ UPPER(LOCATION) .AND. INST $ ;
  311. UPPER(INST_TYPE) .AND.BYDATE>BY_DATE.AND.CALIB_INT#0
  312. ENDCASE
  313. SELECT 2
  314. USE REPDUP INDEX REPDNX
  315. APPEND FROM REPWORK
  316. USE REPWORK
  317. SET BELL OFF
  318. CLEAR
  319. X=0
  320. IF EOF()
  321.  @ 2,15 SAY 'CONDITIONS:'
  322.  ?
  323.  ?
  324.  ?
  325.  IF COND1=DUEWITHIN
  326.   ??DUEDATE
  327.   ??' <= '
  328.   ?? COMPDATE
  329.   ??'   ' 
  330.  ENDIF
  331.  IF COND3=INSTTYPE
  332.   ?? INSTNAME
  333.   ??':  '
  334.   ?? INST
  335.   ??'   '
  336.  ENDIF
  337. IF NUMCOND=3
  338.  IF COND2=LOCATI
  339.   ? LOCATNAME
  340.   ??':  '
  341.   ?? LOC
  342.  ENDIF
  343. ELSE
  344.  IF COND2=LOCATI
  345.   ?? LOCATNAME
  346.   ??':  '
  347.   ?? LOC
  348.  ENDIF
  349. ENDIF
  350.  ?
  351.  ?
  352. ?
  353.   DO CASE
  354.    CASE OTHERCAL=1
  355.     ??'Category:  '
  356.     ?? CATEGORY3
  357.     ??'.'
  358.    CASE STORAGE=1
  359.     ??'Subcategory:  '
  360.     ?? SUBCAT1
  361.     ??'.'
  362.    CASE CAL=1
  363.     ??'Subcategories:  '
  364.     ?? SUBCAT2
  365.     ??' or '
  366.     ?? SUBCAT3
  367.     ??'.'
  368.    CASE ALL=1
  369.     ??'All records in this data base.'
  370.     CASE CALDU=1
  371.     ??'Records with '
  372.     ?? DUEDATE
  373.     ??' designations from '
  374.     ?? COMPDATE1
  375.     ??' to '
  376.     ?? COMPDATE2
  377.     ??'.'
  378.    CASE CALDT=1
  379.     ??'Records with '
  380.     ?? CALIBDATE
  381.     ??' designations from '
  382.     ?? COMPDATE1
  383.     ??' to '
  384.     ?? COMPDATE2
  385.    CASE CALINT=1
  386.     ??'Records with '
  387.     ?? CALINTERVL
  388.     ??' designations from '
  389.     ?? INTERVAL1
  390.     ??' months to'
  391.     ?? INTERVAL2
  392.     ??' months.'
  393.    CASE REMK=1
  394.     ??'Records with the phrase "'
  395.     ?? REMARK1
  396.     ??'" in the '
  397.     ?? REMARKNM
  398.     ??' field.'
  399.    CASE UPDT=1
  400.     ??'Records which were last updated from '
  401.     ?? COMPDATE1
  402.     ??' to '
  403.     ?? COMPDATE2
  404.     ??'.'
  405.    CASE INCAL=1
  406.     ??'Records in subcategory:  '
  407.     ?? SUBCAT2
  408.     ??'.'
  409.    CASE INREP=1
  410.     ??'Records in subcategory:  '
  411.     ?? SUBCAT3
  412.     ??'.'
  413.    CASE SERPHRASE=1
  414.     ??'Records having the phrase "'
  415.     ?? SERPH
  416.     ?? '" in the '
  417.     ?? SERIALNUM
  418.     ??' field.'
  419.    CASE TVAPHRASE=1
  420.     ??'Records having the phrase "'
  421.     ?? TVAPH
  422.     ?? '" in the '
  423.     ?? TVANUMBER
  424.     ??' field.'
  425.   CASE NOTUSED=1
  426.     ??'Category '
  427.     ?? CATEGORY2
  428.     ??' ONLY.'
  429.    CASE INACTIVE=0
  430.     ??'Category '
  431.     ?? CATEGORY1
  432.     ??' ONLY.'
  433.    CASE INACTIVE=1
  434.     IF COND1=DUEWITHIN
  435.     ?'Categories:  '
  436.     ?? CATEGORY1
  437.     ??' and '
  438.     ?? CATEGORY2
  439.     ??'.'
  440.     ELSE
  441.     ?'Categories:  '
  442.     ?? CATEGORY1
  443.     ??', '
  444.     ?? CATEGORY2
  445.     ??','
  446.     ?' and '
  447.     ?? CATEGORY3
  448.     ??'.'
  449.     ENDIF
  450.   ENDCASE
  451.  ?
  452.  ?
  453.  ?'      No records satisfying the above condition(s) were found.' 
  454.  ?
  455.  ?  
  456.  WAIT 
  457.  RETURN 
  458. ENDIF 
  459. ENDCASE
  460. RESPONSE='K'
  461. DO WHILE RECCOUNT()>100 .AND. RESPONSE#'A' .AND. RESPONSE#'B'
  462.   CLEAR
  463.   @ 1,15 SAY 'Data base in use:  '
  464.   ?? OSS
  465.   @ 3,0 SAY 'The total number of records in this modification is'
  466.   ?? RECCOUNT()
  467.   ??'.'
  468.   ?
  469.   ?
  470.   ?'You may either continue with this procedure and process these records or' 
  471.   ?'you may abort this procedure and return to the previous menu.'
  472.   ?
  473.   ?
  474.   ?'        A)  Continue this procedure.'
  475.   ?
  476.   ?
  477.   ?'        B)  Abort this procedure and return to the previous menu.'
  478.   ?
  479.   WAIT '                       ' TO RESPONSE
  480.   RESPONSE=UPPER(RESPONSE)
  481.   DO CASE
  482.     CASE RESPONSE='A'
  483.       EXIT
  484.     CASE RESPONSE='B'
  485.       USE
  486.       SELECT 1
  487.       @ ROW()+2,27 SAY 'Rebuilding index files . . .'
  488.       PACK
  489.       @ ROW()+2,21 SAY 'Restoring records to main data base . . .'
  490.       APPEND FROM REPWORK
  491.       SELECT 2
  492.       USE REPWORK
  493.       ZAP
  494.       USE REPDUP INDEX REPDNX
  495.       ZAP
  496.       SELECT 1
  497.       RETURN
  498.   ENDCASE
  499. ENDDO
  500. ORDERTMP='Z'
  501. ORDERTEMP='Z'
  502. DO WHILE ASC(ORDERTMP)<ASC('A').OR.ASC(ORDERTMP)>ASC('I')
  503. CLEAR
  504. @ 1,0 SAY 'You may order the records according to the contents of any of the'
  505. ?'fields listed below.  Choose any one of them, or you may press RETURN to'
  506. ?'return to a previous menu.'
  507. ?
  508. ?'          A)  '
  509. ?? INSTNAME
  510. ?
  511. IF MULTSN=1
  512.   ?'   (fast) B)  '
  513.   ?? SERIALNUM
  514.  ELSE
  515.   ?'          B)  '
  516.   ?? SERIALNUM
  517. ENDIF
  518. ?
  519. IF MULTSN#1
  520.   ?'   (fast) C)  '
  521.   ?? TVANUMBER
  522.  ELSE
  523.   ?'          C)  '
  524.   ?? TVANUMBER
  525. ENDIF
  526. ?
  527. ?'          D)  '
  528. ?? CALIBDATE
  529. ?
  530. ?'          E)  '
  531. ?? DUEDATE
  532. ?
  533. ?'          F)  '
  534. ?? LOCATNAME
  535. ?
  536. ?'          G)  '
  537. ?? CALINTERVL
  538. ?
  539. ?'          H)  Last Update'
  540. ?
  541. ?'          I)  '
  542. ?? REMARKNM
  543. ?
  544. WAIT '            ' TO ORDERTMP
  545. ORDERTMP=UPPER(LTRIM(TRIM(ORDERTMP)))
  546. @ ROW(),12 SAY 'WORKING . . .                       '
  547. IF LEN(ORDERTMP)=0
  548.   CLOSE DATABASES
  549.   USE &DBNAME INDEX &INDEX1,&INDEX2
  550.   CLEAR
  551.   @ 5,27 SAY 'Rebuilding index files . . .'
  552.   PACK
  553.   @ 8,21 SAY 'Restoring records to main data base . . .'
  554.   APPEND FROM REPWORK
  555.   USE REPDUP INDEX REPDNX
  556.   ZAP
  557.   USE REPWORK
  558.   ZAP
  559.   USE &DBNAME INDEX &INDEX1,&INDEX2
  560.   RETURN
  561. ENDIF
  562. ENDDO
  563. DO CASE
  564.   CASE ORDERTMP='A'
  565.    ORDERTEMP='INST_TYPE'
  566.   CASE ORDERTMP='F'
  567.    ORDERTEMP='LOCATION'
  568.   CASE ORDERTMP='G'
  569.    ORDERTEMP='CALIB_INT'
  570.   CASE ORDERTMP='I'
  571.    ORDERTEMP='REMARK'
  572. ENDCASE
  573. DO CASE
  574.   CASE ORDERTMP='B'
  575.    IF MULTSN#1
  576.     INDEX ON SERIAL_NO TO TMPNDX
  577.     SET INDEX TO TMPNDX
  578.    ELSE
  579.    DUP100=1
  580.    ENDIF
  581.   CASE ORDERTMP='C'
  582.    IF MULTSN=1
  583.     INDEX ON TVA_NO TO TMPNDX
  584.     SET INDEX TO TMPNDX
  585.    ELSE
  586.     DUP100=1
  587.    ENDIF
  588.   CASE ORDERTMP='D'
  589.    INDEX ON STR(YEAR(CALIB_DATE),4)+DTOC(CALIB_DATE) TO TMPNDX
  590.    SET INDEX TO TMPNDX
  591.   CASE ORDERTMP='E'
  592.    INDEX ON STR(YEAR(CAL_DUE_DT),4)+DTOC(CAL_DUE_DT) TO TMPNDX
  593.    SET INDEX TO TMPNDX
  594.   CASE ORDERTMP='H'
  595.    INDEX ON STR(YEAR(LAST_UPDAT),4)+DTOC(LAST_UPDAT) TO TMPNDX
  596.    SET INDEX TO TMPNDX
  597.   OTHERWISE
  598.    INDEX ON &ORDERTEMP TO TMPNDX
  599.    SET INDEX TO TMPNDX
  600. ENDCASE
  601. IF DUP100=0
  602. COPY TO REPDUP1
  603. USE REPDUP1
  604. COPY TO REPWORK
  605. ZAP
  606. USE REPWORK
  607. ENDIF
  608. N4='Y'
  609. TOTALREC=RECCOUNT()
  610. GO TOP
  611. IF DUPREC='N'
  612. SET FORMAT TO REPMODIN.FMT
  613. ELSE
  614. SET FORMAT TO REPMODY.FMT
  615. ENDIF
  616. DO WHILE N4='Y' 
  617.  EDIT
  618.  N4='K'
  619.  DO WHILE N4#'Y'.AND.N4#'N'
  620.   CLEAR
  621.   ?
  622.   ?
  623.   ?
  624.   ?
  625.   ?
  626.   WAIT '      Do you wish to make any more changes to these records ?;
  627.   (Y/N)' TO N4
  628.   N4=UPPER(N4)
  629.   IF N4#'Y'.AND.N4#'N'
  630.    LOOP
  631.   ENDIF
  632.  ENDDO
  633. ENDDO
  634.   ERRFILE=0
  635.   CHECKDT=1
  636.   CHECKDATE='K'
  637.  DO WHILE CHECKDATE#'N' .AND. CHECKDATE#'Y' 
  638.    CLEAR
  639.    @ 5,7 SAY 'Do you wish to make any corrections during the record checking'
  640.    @ 6,7 SAY 'procedure if any errors are found ? (Y/N)'
  641.    @ 10,7 SAY 'If not, it will be necessary to make the corrections after the'
  642.    WAIT '       record check is complete.' TO CHECKDATE
  643.    CHECKDATE=UPPER(CHECKDATE)
  644.    IF CHECKDATE='N'
  645.     CHECKDT=0
  646.    ENDIF
  647.   ENDDO
  648.    CLEAR
  649.    @ 1,16 SAY 'Data base in use:  '
  650.    ?? OSS
  651.    @ 3,0
  652.   ?'The record modifications are now being processed, and checked.  If they are'
  653.    ?'okay, they will automatically be added to the main data base.'
  654.    ?
  655.    ?
  656.    ?
  657.    ?
  658.    ?'                           ONE MOMENT PLEASE'
  659.    ?        
  660.    ?'                ________________________________________'
  661.    ?'               |                                        |'
  662.    ?'               |    PLEASE DO NOT PRESS ANY KEYS YET    |'
  663.    ?'               |________________________________________|'
  664.    ?
  665.    ?
  666.    @ 0,16 SAY 'Working on preliminary record check.'
  667.    DELETE FOR LEN(TRIM(INST_TYPE))=0
  668.    SET DELETED OFF
  669.    COPY TO REPDEL FOR DELETED()
  670.    SET DELETED ON
  671.    PACK
  672.    YR=YEAR(DAT)
  673.    MO=MONTH(DAT)
  674.    DY=DAY(DAT)
  675.    MODREC=RECCOUNT()
  676.    @ 0,3 SAY 'Total No. of records (after any deletions) in this ;
  677. modification is'
  678.    ?? MODREC
  679.    ??'.'
  680.    @ 2,3 SAY 'Total No. of records which were deleted is'
  681.    RECDEL=TOTALREC-MODREC
  682.    ?? RECDEL
  683.    ??'.'
  684.    GO TOP
  685.    @ 23,24 SAY 'Now checking record'
  686.    @ 23,43 SAY RECNO()
  687.    SELECT 4
  688.    USE REPERR
  689.    SELECT 2
  690.    DO WHILE .NOT. EOF()
  691.     REPLACE LAST_UPDATE WITH DAT
  692.     REPLACE INST_TYPE WITH LTRIM(INST_TYPE)
  693.     REPLACE SUBCATID WITH LTRIM(UPPER(SUBCATID))
  694.     REPLACE SERIAL_NO WITH UPPER(LTRIM(SERIAL_NO))
  695.     REPLACE TVA_NO WITH UPPER(LTRIM(TVA_NO))
  696.     IF TVAID='Y'
  697.      IF ' ' $ TRIM(TVA_NO)
  698.        VSTR=TRIM(TVA_NO)
  699.        DO WHILE ' ' $ VSTR
  700.          P=AT(' ',VSTR)
  701.          VSTR=LEFT(VSTR,P-1)+RIGHT(VSTR,LEN(VSTR)-P)
  702.        ENDDO
  703.        REPLACE TVA_NO WITH VSTR
  704.      ENDIF
  705.     ENDIF
  706.     IF SERID='Y'
  707.      IF ' ' $ TRIM(SERIAL_NO)
  708.        VSTR=TRIM(SERIAL_NO)
  709.        DO WHILE ' ' $ VSTR
  710.          P=AT(' ',VSTR)
  711.          VSTR=LEFT(VSTR,P-1)+RIGHT(VSTR,LEN(VSTR)-P)
  712.        ENDDO
  713.        REPLACE SERIAL_NO WITH VSTR
  714.      ENDIF
  715.     ENDIF
  716.     CVAR=LTRIM(TRIM(UPPER(COMLINE)))
  717.     IF '.D.' $ CVAR.OR.'.E.' $ CVAR
  718.      REPLACE REMARK WITH ' '
  719.      IF LEN(CVAR)<4
  720.       CVAR=' '
  721.      ENDIF
  722.     ENDIF
  723.     IF '.' $ CVAR
  724.      IF '2' $ CVAR
  725.       REPLACE CALIB_INT WITH 99
  726.       REPLACE BY_DATE WITH 0
  727.       IF '.ED.' $ CVAR.OR.'.DD.' $ CVAR
  728.        REPLACE CALIB_DATE WITH CTOD('  /  /  ')
  729.        REPLACE CAL_DUE_DT WITH CALIB_DATE
  730.       ENDIF
  731.       REPLACE COMLINE WITH ' '
  732.       SKIP
  733.       @ 23,43 SAY RECNO()
  734.       LOOP
  735.      ENDIF
  736.      IF '3' $ CVAR
  737.       REPLACE CALIB_INT WITH 0
  738.       REPLACE BY_DATE WITH 0
  739.       IF '.ED.' $ CVAR.OR.'.DD.' $ CVAR
  740.        REPLACE CALIB_DATE WITH CTOD('  /  /  ')
  741.        REPLACE CAL_DUE_DT WITH CALIB_DATE
  742.       ENDIF
  743.       REPLACE COMLINE WITH ' '
  744.       SKIP
  745.       @ 23,43 SAY RECNO()
  746.       LOOP
  747.      ENDIF
  748.     DO CASE
  749.      CASE '.OF.' $ CVAR.OR.'.0F.' $ CVAR
  750.       CALOVER=0
  751.       REPLACE BY_DATE WITH CALOVER
  752.      CASE '.PO.' $ CVAR
  753.       CALOVER=200
  754.       REPLACE BY_DATE WITH CALOVER
  755.       REPLACE COMLINE WITH ' '
  756.       SKIP
  757.       @ 23,43 SAY RECNO()
  758.       LOOP
  759.      CASE '.P0.' $ CVAR
  760.       CALOVER=200
  761.       REPLACE BY_DATE WITH CALOVER
  762.       REPLACE COMLINE WITH ' '
  763.       SKIP
  764.       @ 23,43 SAY RECNO()
  765.       LOOP
  766.      CASE '.O.' $ CVAR
  767.       CALOVER=100
  768.       REPLACE BY_DATE WITH CALOVER
  769.       REPLACE COMLINE WITH ' '
  770.       SKIP
  771.       @ 23,43 SAY RECNO()
  772.       LOOP
  773.      CASE '.0.' $ CVAR
  774.       CALOVER=100
  775.       REPLACE BY_DATE WITH CALOVER
  776.       REPLACE COMLINE WITH ' '
  777.       SKIP
  778.       @ 23,43 SAY RECNO()
  779.       LOOP
  780.     ENDCASE
  781.     IF ('.ED.' $ CVAR.OR.'.DD.' $ CVAR).AND.(CALIB_INT=0.OR.CALIB_INT=99)
  782.       REPLACE CALIB_DATE WITH CTOD('  /  /  ')
  783.       REPLACE CAL_DUE_DT WITH CALIB_DATE
  784.       REPLACE BY_DATE WITH 0
  785.       REPLACE COMLINE WITH ' '
  786.       SKIP
  787.       @ 23,43 SAY RECNO()
  788.       LOOP
  789.     ENDIF
  790.     ENDIF
  791.     IF CALIB_INT=99 .OR. CALIB_INT=0
  792.       REPLACE BY_DATE WITH 0
  793.       REPLACE COMLINE WITH ' '
  794.      SKIP
  795.      @ 23,43 SAY RECNO()
  796.      LOOP
  797.     ENDIF
  798.   REPLACE COMLINE WITH ' '
  799.   IF YEAR(CALIB_DATE)+100-YEAR(DAT)<10
  800.    MOCALDT=MONTH(CALIB_DATE)
  801.    DYCALDT=DAY(CALIB_DATE)
  802.    YRCALDT=INT(YEAR(CALIB_DATE)+100)
  803.    IF MOCALDT<10
  804.      M=1
  805.     ELSE
  806.      M=2
  807.    ENDIF
  808.    IF DYCALDT<10
  809.      D=1
  810.     ELSE
  811.      D=2
  812.    ENDIF
  813.    REPLACE CALIB_DATE WITH CTOD(STR(MOCALDT,M,0)+'/'+STR(DYCALDT,D,0)+'/'+;
  814. STR(YRCALDT,4,0))
  815.   ENDIF
  816.   IF YEAR(CAL_DUE_DT)+100-YEAR(DAT)<10
  817.    MOCALDT=MONTH(CAL_DUE_DT)
  818.    DYCALDT=DAY(CAL_DUE_DT)
  819.    YRCALDT=INT(YEAR(CAL_DUE_DT)+100)
  820.    IF MOCALDT<10
  821.      M=1
  822.     ELSE
  823.      M=2
  824.    ENDIF
  825.    IF DYCALDT<10
  826.      D=1
  827.     ELSE
  828.      D=2
  829.    ENDIF
  830.    REPLACE CAL_DUE_DT WITH CTOD(STR(MOCALDT,M,0)+'/'+STR(DYCALDT,D,0)+'/'+;
  831. STR(YRCALDT,4,0))
  832.   ENDIF
  833.   IF BY_DATE#200.AND.CALOVER=0
  834.     TCOMP=YR*365.24+MO*30.44+DY
  835.     TDCOMP=YR*365.24+(MO-CALIB_INT)*30.44+DY
  836.     CDCOMP=YEAR(CALIB_DATE)*365.24+MONTH(CALIB_DATE)*30.44+DAY(CALIB_DATE)
  837.     CALDUEP=CDCOMP+CALIB_INT*30.44-5
  838.     CALDUDT=YEAR(CAL_DUE_DT)*365.24+MONTH(CAL_DUE_DT)*30.44+DAY(CAL_DUE_DT)
  839.     IF TDCOMP>CDCOMP.OR.CDCOMP>TCOMP
  840.     IF CHECKDT=0
  841.      ERRFILE=1
  842.      SELECT 4
  843.      APPEND BLANK
  844.      REPLACE SUBCATID WITH B->SUBCATID
  845.      REPLACE INST_TYPE WITH B->INST_TYPE
  846.      REPLACE TVA_NO WITH B->TVA_NO
  847.      REPLACE SERIAL_NO WITH B->SERIAL_NO
  848.      REPLACE BY_DATE WITH B->BY_DATE
  849.      REPLACE CALIB_DATE WITH B->CALIB_DATE
  850.      REPLACE CAL_DUE_DT WITH B->CAL_DUE_DT
  851.      REPLACE LOCATION WITH B->LOCATION
  852.      REPLACE REMARK WITH B->REMARK
  853.      REPLACE CALIB_INT WITH B->CALIB_INT
  854.      REPLACE LAST_UPDAT WITH B->LAST_UPDAT
  855.      SELECT 2
  856.      DELETE
  857.      SKIP
  858.      LOOP
  859.     ENDIF
  860.      DO REPCALDT
  861.      @ 23,24 SAY 'Now checking record'
  862.      @ 23,43 SAY RECNO()
  863.      LOOP
  864.     ENDIF
  865.     YRDUE=YEAR(CALIB_DATE)
  866.     MODUE=MONTH(CALIB_DATE)+CALIB_INT
  867.     DYDUE=DAY(CALIB_DATE)
  868.     IF MODUE>12
  869.      YRDUE=YRDUE+INT(MODUE/12)
  870.      MODUE=INT(MODUE-INT(MODUE/12)*12)
  871.     ENDIF
  872.     M=1
  873.     IF MODUE>9
  874.      M=2
  875.     ENDIF
  876.     D=2
  877.     IF DYDUE<10
  878.      D=1
  879.     ENDIF
  880.     DATDU=STR(MODUE,M,0)+'/'+STR(DYDUE,D,0)+'/'+STR(YRDUE,4,0)
  881.     CALCDUDT=CTOD(DATDU)
  882.     CALDUETY=YEAR(CALCDUDT)*365.24+MONTH(CALCDUDT)*30.44+DAY(CALCDUDT)
  883.     IF CALDUDT>CALDUETY.OR.CALDUDT<CALDUEP
  884.     IF CHECKDT=0
  885.      ERRFILE=1
  886.      SELECT 4
  887.      APPEND BLANK
  888.      REPLACE SUBCATID WITH B->SUBCATID
  889.      REPLACE INST_TYPE WITH B->INST_TYPE
  890.      REPLACE TVA_NO WITH B->TVA_NO
  891.      REPLACE SERIAL_NO WITH B->SERIAL_NO
  892.      REPLACE BY_DATE WITH B->BY_DATE
  893.      REPLACE CALIB_DATE WITH B->CALIB_DATE
  894.      REPLACE CAL_DUE_DT WITH B->CAL_DUE_DT
  895.      REPLACE LOCATION WITH B->LOCATION
  896.      REPLACE REMARK WITH B->REMARK
  897.      REPLACE CALIB_INT WITH B->CALIB_INT
  898.      REPLACE LAST_UPDAT WITH B->LAST_UPDAT
  899.      SELECT 2
  900.      DELETE
  901.      SKIP
  902.      LOOP
  903.     ENDIF
  904.      DO REPCALDU
  905.      @ 23,24 SAY 'Now checking record'
  906.      @ 23,43 SAY RECNO()
  907.     LOOP
  908.     ENDIF
  909.    IF BY_DATE#200
  910.     REPLACE BY_DATE WITH CALDUDT-1
  911.    ENDIF
  912.   ENDIF
  913.     SKIP
  914.     CALOVER=0
  915.     @ 23,43 SAY RECNO()
  916.    ENDDO
  917.    IF ERRFILE=1
  918.     SELECT 4
  919.     GO TOP
  920.     DO ERRFILE
  921.     USE
  922.     SELECT 2
  923.     APPEND FROM REPERR
  924.     PACK
  925.     USE
  926.     SELECT 4
  927.     USE REPERR
  928.     ZAP
  929.     SELECT 2
  930.    ENDIF
  931.    USE
  932.    SELECT 1
  933.    @ 23,6 SAY 'Finished record check.  Now adding record(s) to main data base.'
  934.    APPEND FROM REPWORK
  935.    USE REPWORK
  936.    GO TOP
  937.    IF EOF()
  938.     CLEAR
  939.     @ 7,30 SAY 'RECORD(S) DELETED'
  940.     @ 10,0
  941.     WAIT '                       Press any key to continue. . . ' TO RESPONSE
  942.     MODFILE=1
  943.     PDELREC=1
  944.     ADDFILE=0
  945.     SEECODE='K'
  946. DO WHILE SEECODE#'APPLE'
  947.   CLEAR
  948.   @ 1,10 SAY 'What do you want to do ?'
  949.   @ 4,10 SAY 'A)  Print the record(s) which were just deleted.'
  950.   @ 6,10 SAY 'B)  View the record(s) which were just deleted.'
  951.   @ 8,10 SAY 'C)  Both print and view the record(s) which were just deleted.'
  952.   IF DUPREC='N'
  953.   @ 10,7 SAY '----------------------------------------------------------------;
  954. -----'
  955.   @ 12,10 SAY 'D)  RESTORE all records which were just deleted to the main ;
  956. data base.'
  957.   ENDIF
  958.     ?
  959.     WAIT '          Press "RETURN" to return to a previous menu.' TO SEECODE
  960.    SEECODE=UPPER(SEECODE)
  961.    DO CASE
  962.     CASE SEECODE='A'.AND.RECDEL>0
  963.       PDELREC=1
  964.       USE REPDEL
  965.       PRINTOUT=1
  966.       VIEW=0
  967.     CASE SEECODE='B'.AND.RECDEL>0
  968.       PDELREC=1
  969.       USE REPDEL
  970.       VIEW=1
  971.       PRINTOUT=0
  972.     CASE SEECODE='C'.AND.RECDEL>0
  973.       PDELREC=1
  974.       USE REPDEL
  975.       PRINTOUT=1
  976.       VIEW=1
  977.     CASE SEECODE='D'.AND.RECDEL>0.AND.DUPREC='N'
  978.       CLEAR
  979.      @ 10,10 SAY 'Now restoring all records just deleted to the main data base.'
  980.       @ 16,35 SAY 'WORKING . . .'
  981.       SELECT 2
  982.       USE REPDEL
  983.       SET DELETED OFF
  984.       RECALL ALL
  985.       SET DELETED ON
  986.       GO TOP
  987.       SELECT 3
  988.       USE REPDUP INDEX REPDNX
  989.       GO TOP
  990.       DO WHILE .NOT. EOF()
  991.       SELECT 3
  992.       SEEK B->TVA_NO
  993.       SELECT 2
  994.       REPLACE SUBCATID WITH C->SUBCATID
  995.       REPLACE INST_TYPE WITH C->INST_TYPE
  996.       REPLACE SERIAL_NO WITH C->SERIAL_NO
  997.       REPLACE BY_DATE WITH C->BY_DATE
  998.       REPLACE CALIB_DATE WITH C->CALIB_DATE
  999.       REPLACE CAL_DUE_DT WITH C->CAL_DUE_DT
  1000.       REPLACE LOCATION WITH C->LOCATION
  1001.       REPLACE REMARK WITH C->REMARK
  1002.       REPLACE CALIB_INT WITH C->CALIB_INT
  1003.       REPLACE LAST_UPDAT WITH C->LAST_UPDAT
  1004.       SKIP
  1005.       ENDDO
  1006.       SELECT 3
  1007.       USE
  1008.       RECDEL=0
  1009.       SELECT 2
  1010.       USE
  1011.       SELECT 1
  1012.       APPEND FROM REPDEL
  1013.       USE &DBNAME INDEX &INDEX1,&INDEX2
  1014.       APPEND FROM REPDEL
  1015.       USE REPDEL
  1016.       ZAP
  1017.       USE REPWORK
  1018.       ZAP
  1019.       USE REPDUP INDEX REPDNX
  1020.       ZAP
  1021.       RETURN
  1022.     CASE ASC(SEECODE)=0
  1023.       CLEAR
  1024.       @ 10,36 SAY 'WORKING . . .'
  1025.       USE REPDEL
  1026.       ZAP
  1027.       USE REPWORK
  1028.       ZAP
  1029.       USE REPDUP INDEX REPDNX
  1030.       ZAP
  1031.       RETURN
  1032.     CASE ASC(SEECODE)<65.OR.ASC(SEECODE)>68.OR.RECDEL=0.OR.DUPREC='Y'
  1033.       LOOP
  1034.   ENDCASE
  1035.   IF SEECODE='A'.OR.SEECODE='B'.OR.SEECODE='C'
  1036.    SET DELETED OFF
  1037.   ENDIF
  1038.   DO REPINSTP
  1039.   SET DELETED ON
  1040.   USE REPWORK
  1041.   SEECODE='K'
  1042.   LOOP
  1043. ENDDO
  1044.    USE REPDEL
  1045.    ZAP
  1046.    USE REPWORK
  1047.    ZAP
  1048.    USE REPDUP INDEX REPDNX
  1049.    ZAP
  1050.    RETURN
  1051.    ENDIF
  1052. MODFILE=1
  1053. ADDFILE=0
  1054. SEECODE='K'
  1055. DO WHILE SEECODE#'APPLE'
  1056.   CLEAR
  1057.   @ 1,10 SAY 'What do you want to do ?'
  1058.   @ 4,10 SAY 'A)  Print the record(s) which you just modified.'
  1059.   @ 6,10 SAY 'B)  View the record(s) which you just modified on this screen.'
  1060.   @ 8,10 SAY 'C)  Both print and view the record(s) which you just modified.'
  1061.   IF RECDEL>0
  1062.   @ 10,7 SAY '----------------------------------------------------------------;
  1063. -----'
  1064.   @ 12,10 SAY 'D)  Print the record(s) which were just deleted.'
  1065.   @ 14,10 SAY 'E)  View the record(s) which were just deleted.'
  1066.   @ 16,10 SAY 'F)  Both print and view the record(s) which were just deleted.'
  1067.   IF DUPREC='N'
  1068.   @ 18,7 SAY '----------------------------------------------------------------;
  1069. -----'
  1070.   @ 20,10 SAY 'G)  RESTORE all records which were just deleted to the main ;
  1071. data base.'
  1072.   ENDIF
  1073.   ENDIF
  1074.   ?
  1075. WAIT '          Press "RETURN" to return to a previous menu.' TO SEECODE
  1076. ??'  WORKING . . .'
  1077.   SEECODE=UPPER(SEECODE)
  1078.   DO CASE
  1079.     CASE SEECODE='A'
  1080.       PDELREC=0
  1081.       PRINTOUT=1
  1082.       VIEW=0
  1083.     CASE SEECODE='B'
  1084.       PDELREC=0
  1085.       VIEW=1
  1086.       PRINTOUT=0
  1087.     CASE SEECODE='C'
  1088.       PDELREC=0
  1089.       PRINTOUT=1
  1090.       VIEW=1
  1091.     CASE SEECODE='D'.AND.RECDEL>0
  1092.       PDELREC=1
  1093.       USE REPDEL
  1094.       PRINTOUT=1
  1095.       VIEW=0
  1096.     CASE SEECODE='E'.AND.RECDEL>0
  1097.       PDELREC=1
  1098.       USE REPDEL
  1099.       VIEW=1
  1100.       PRINTOUT=0
  1101.     CASE SEECODE='F'.AND.RECDEL>0
  1102.       PDELREC=1
  1103.       USE REPDEL
  1104.       PRINTOUT=1
  1105.       VIEW=1
  1106.     CASE SEECODE='G'.AND.RECDEL>0.AND.DUPREC='N'
  1107.       CLEAR
  1108.      @ 10,10 SAY 'Now restoring all records just deleted to the main data base.'
  1109.       @ 16,35 SAY 'WORKING . . .'
  1110.       SELECT 2
  1111.       USE REPDEL
  1112.       SET DELETED OFF
  1113.       RECALL ALL
  1114.       SET DELETED ON
  1115.       GO TOP
  1116.       SELECT 3
  1117.       USE REPDUP INDEX REPDNX
  1118.       GO TOP
  1119.       DO WHILE .NOT. EOF()
  1120.       SELECT 3
  1121.       SEEK B->TVA_NO
  1122.       SELECT 2
  1123.       REPLACE SUBCATID WITH C->SUBCATID
  1124.       REPLACE INST_TYPE WITH C->INST_TYPE
  1125.       REPLACE SERIAL_NO WITH C->SERIAL_NO
  1126.       REPLACE BY_DATE WITH C->BY_DATE
  1127.       REPLACE CALIB_DATE WITH C->CALIB_DATE
  1128.       REPLACE CAL_DUE_DT WITH C->CAL_DUE_DT
  1129.       REPLACE LOCATION WITH C->LOCATION
  1130.       REPLACE REMARK WITH C->REMARK
  1131.       REPLACE CALIB_INT WITH C->CALIB_INT
  1132.       REPLACE LAST_UPDAT WITH C->LAST_UPDAT
  1133.       SKIP
  1134.       ENDDO
  1135.       SELECT 3
  1136.       USE
  1137.       RECDEL=0
  1138.       SELECT 2
  1139.       USE
  1140.       SELECT 1
  1141.       APPEND FROM REPDEL
  1142.       USE &DBNAME INDEX &INDEX1,&INDEX2
  1143.       APPEND FROM REPDEL
  1144.       USE REPWORK
  1145.       LOOP
  1146.     CASE ASC(SEECODE)=0
  1147.       CLEAR
  1148.       @ 10,36 SAY 'WORKING . . .'
  1149.       USE REPDEL
  1150.       ZAP
  1151.       USE REPWORK
  1152.       ZAP
  1153.       USE REPDUP INDEX REPDNX
  1154.       ZAP
  1155.       RETURN
  1156.     CASE ASC(SEECODE)<65.OR.ASC(SEECODE)>71.OR.RECDEL=0.OR.DUPREC='Y'
  1157.       LOOP
  1158.   ENDCASE
  1159.   IF SEECODE='D'.OR.SEECODE='E'.OR.SEECODE='F'
  1160.    SET DELETED OFF
  1161.   ENDIF
  1162.   DO REPINSTP
  1163.   SET DELETED ON
  1164.   USE REPWORK
  1165.   SEECODE='K'
  1166.   LOOP
  1167. ENDDO
  1168.    USE REPDEL
  1169.    ZAP
  1170.    USE REPWORK
  1171.    ZAP
  1172.    USE REPDUP INDEX REPDNX
  1173.    ZAP
  1174.    RETURN
  1175.  
  1176.